package com.cspg.design.dao.gen;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.cspg.design.bean.deviceBean.CrossDeviceBean;
import com.cspg.design.bean.deviceBean.HotLineWorkPlanBean;
import com.cspg.design.bean.deviceBean.PointDeviceBean;
import com.cspg.design.bean.deviceBean.PolylineDeviceBean;
import com.cspg.design.bean.modelLibrary.TowerLibrary;
import com.cspg.design.bean.modelLibrary.TransformerLibrary;
import com.cspg.design.bean.modelLibrary.WireLibrary;
import com.cspg.design.bean.projectBean.ProjectBean;
import com.cspg.design.bean.projectBean.projectCustomSchemeBean;
import com.cspg.design.bean.projectBean.projectHighVoltageSchemeBean;
import com.cspg.design.bean.projectBean.projectLowVoltageSchemeBean;
import com.cspg.design.bean.shemeBean.MyHighVoltageSchemeBean;
import com.cspg.design.bean.shemeBean.MyLowVoltageSchemeBean;
import com.cspg.design.bean.splash.SplashBean;
import com.cspg.design.bean.userInfoBean.UserInfoBean;

import com.cspg.design.dao.gen.CrossDeviceBeanDao;
import com.cspg.design.dao.gen.HotLineWorkPlanBeanDao;
import com.cspg.design.dao.gen.PointDeviceBeanDao;
import com.cspg.design.dao.gen.PolylineDeviceBeanDao;
import com.cspg.design.dao.gen.TowerLibraryDao;
import com.cspg.design.dao.gen.TransformerLibraryDao;
import com.cspg.design.dao.gen.WireLibraryDao;
import com.cspg.design.dao.gen.ProjectBeanDao;
import com.cspg.design.dao.gen.projectCustomSchemeBeanDao;
import com.cspg.design.dao.gen.projectHighVoltageSchemeBeanDao;
import com.cspg.design.dao.gen.projectLowVoltageSchemeBeanDao;
import com.cspg.design.dao.gen.MyHighVoltageSchemeBeanDao;
import com.cspg.design.dao.gen.MyLowVoltageSchemeBeanDao;
import com.cspg.design.dao.gen.SplashBeanDao;
import com.cspg.design.dao.gen.UserInfoBeanDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig crossDeviceBeanDaoConfig;
    private final DaoConfig hotLineWorkPlanBeanDaoConfig;
    private final DaoConfig pointDeviceBeanDaoConfig;
    private final DaoConfig polylineDeviceBeanDaoConfig;
    private final DaoConfig towerLibraryDaoConfig;
    private final DaoConfig transformerLibraryDaoConfig;
    private final DaoConfig wireLibraryDaoConfig;
    private final DaoConfig projectBeanDaoConfig;
    private final DaoConfig projectCustomSchemeBeanDaoConfig;
    private final DaoConfig projectHighVoltageSchemeBeanDaoConfig;
    private final DaoConfig projectLowVoltageSchemeBeanDaoConfig;
    private final DaoConfig myHighVoltageSchemeBeanDaoConfig;
    private final DaoConfig myLowVoltageSchemeBeanDaoConfig;
    private final DaoConfig splashBeanDaoConfig;
    private final DaoConfig userInfoBeanDaoConfig;

    private final CrossDeviceBeanDao crossDeviceBeanDao;
    private final HotLineWorkPlanBeanDao hotLineWorkPlanBeanDao;
    private final PointDeviceBeanDao pointDeviceBeanDao;
    private final PolylineDeviceBeanDao polylineDeviceBeanDao;
    private final TowerLibraryDao towerLibraryDao;
    private final TransformerLibraryDao transformerLibraryDao;
    private final WireLibraryDao wireLibraryDao;
    private final ProjectBeanDao projectBeanDao;
    private final projectCustomSchemeBeanDao projectCustomSchemeBeanDao;
    private final projectHighVoltageSchemeBeanDao projectHighVoltageSchemeBeanDao;
    private final projectLowVoltageSchemeBeanDao projectLowVoltageSchemeBeanDao;
    private final MyHighVoltageSchemeBeanDao myHighVoltageSchemeBeanDao;
    private final MyLowVoltageSchemeBeanDao myLowVoltageSchemeBeanDao;
    private final SplashBeanDao splashBeanDao;
    private final UserInfoBeanDao userInfoBeanDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        crossDeviceBeanDaoConfig = daoConfigMap.get(CrossDeviceBeanDao.class).clone();
        crossDeviceBeanDaoConfig.initIdentityScope(type);

        hotLineWorkPlanBeanDaoConfig = daoConfigMap.get(HotLineWorkPlanBeanDao.class).clone();
        hotLineWorkPlanBeanDaoConfig.initIdentityScope(type);

        pointDeviceBeanDaoConfig = daoConfigMap.get(PointDeviceBeanDao.class).clone();
        pointDeviceBeanDaoConfig.initIdentityScope(type);

        polylineDeviceBeanDaoConfig = daoConfigMap.get(PolylineDeviceBeanDao.class).clone();
        polylineDeviceBeanDaoConfig.initIdentityScope(type);

        towerLibraryDaoConfig = daoConfigMap.get(TowerLibraryDao.class).clone();
        towerLibraryDaoConfig.initIdentityScope(type);

        transformerLibraryDaoConfig = daoConfigMap.get(TransformerLibraryDao.class).clone();
        transformerLibraryDaoConfig.initIdentityScope(type);

        wireLibraryDaoConfig = daoConfigMap.get(WireLibraryDao.class).clone();
        wireLibraryDaoConfig.initIdentityScope(type);

        projectBeanDaoConfig = daoConfigMap.get(ProjectBeanDao.class).clone();
        projectBeanDaoConfig.initIdentityScope(type);

        projectCustomSchemeBeanDaoConfig = daoConfigMap.get(projectCustomSchemeBeanDao.class).clone();
        projectCustomSchemeBeanDaoConfig.initIdentityScope(type);

        projectHighVoltageSchemeBeanDaoConfig = daoConfigMap.get(projectHighVoltageSchemeBeanDao.class).clone();
        projectHighVoltageSchemeBeanDaoConfig.initIdentityScope(type);

        projectLowVoltageSchemeBeanDaoConfig = daoConfigMap.get(projectLowVoltageSchemeBeanDao.class).clone();
        projectLowVoltageSchemeBeanDaoConfig.initIdentityScope(type);

        myHighVoltageSchemeBeanDaoConfig = daoConfigMap.get(MyHighVoltageSchemeBeanDao.class).clone();
        myHighVoltageSchemeBeanDaoConfig.initIdentityScope(type);

        myLowVoltageSchemeBeanDaoConfig = daoConfigMap.get(MyLowVoltageSchemeBeanDao.class).clone();
        myLowVoltageSchemeBeanDaoConfig.initIdentityScope(type);

        splashBeanDaoConfig = daoConfigMap.get(SplashBeanDao.class).clone();
        splashBeanDaoConfig.initIdentityScope(type);

        userInfoBeanDaoConfig = daoConfigMap.get(UserInfoBeanDao.class).clone();
        userInfoBeanDaoConfig.initIdentityScope(type);

        crossDeviceBeanDao = new CrossDeviceBeanDao(crossDeviceBeanDaoConfig, this);
        hotLineWorkPlanBeanDao = new HotLineWorkPlanBeanDao(hotLineWorkPlanBeanDaoConfig, this);
        pointDeviceBeanDao = new PointDeviceBeanDao(pointDeviceBeanDaoConfig, this);
        polylineDeviceBeanDao = new PolylineDeviceBeanDao(polylineDeviceBeanDaoConfig, this);
        towerLibraryDao = new TowerLibraryDao(towerLibraryDaoConfig, this);
        transformerLibraryDao = new TransformerLibraryDao(transformerLibraryDaoConfig, this);
        wireLibraryDao = new WireLibraryDao(wireLibraryDaoConfig, this);
        projectBeanDao = new ProjectBeanDao(projectBeanDaoConfig, this);
        projectCustomSchemeBeanDao = new projectCustomSchemeBeanDao(projectCustomSchemeBeanDaoConfig, this);
        projectHighVoltageSchemeBeanDao = new projectHighVoltageSchemeBeanDao(projectHighVoltageSchemeBeanDaoConfig, this);
        projectLowVoltageSchemeBeanDao = new projectLowVoltageSchemeBeanDao(projectLowVoltageSchemeBeanDaoConfig, this);
        myHighVoltageSchemeBeanDao = new MyHighVoltageSchemeBeanDao(myHighVoltageSchemeBeanDaoConfig, this);
        myLowVoltageSchemeBeanDao = new MyLowVoltageSchemeBeanDao(myLowVoltageSchemeBeanDaoConfig, this);
        splashBeanDao = new SplashBeanDao(splashBeanDaoConfig, this);
        userInfoBeanDao = new UserInfoBeanDao(userInfoBeanDaoConfig, this);

        registerDao(CrossDeviceBean.class, crossDeviceBeanDao);
        registerDao(HotLineWorkPlanBean.class, hotLineWorkPlanBeanDao);
        registerDao(PointDeviceBean.class, pointDeviceBeanDao);
        registerDao(PolylineDeviceBean.class, polylineDeviceBeanDao);
        registerDao(TowerLibrary.class, towerLibraryDao);
        registerDao(TransformerLibrary.class, transformerLibraryDao);
        registerDao(WireLibrary.class, wireLibraryDao);
        registerDao(ProjectBean.class, projectBeanDao);
        registerDao(projectCustomSchemeBean.class, projectCustomSchemeBeanDao);
        registerDao(projectHighVoltageSchemeBean.class, projectHighVoltageSchemeBeanDao);
        registerDao(projectLowVoltageSchemeBean.class, projectLowVoltageSchemeBeanDao);
        registerDao(MyHighVoltageSchemeBean.class, myHighVoltageSchemeBeanDao);
        registerDao(MyLowVoltageSchemeBean.class, myLowVoltageSchemeBeanDao);
        registerDao(SplashBean.class, splashBeanDao);
        registerDao(UserInfoBean.class, userInfoBeanDao);
    }
    
    public void clear() {
        crossDeviceBeanDaoConfig.clearIdentityScope();
        hotLineWorkPlanBeanDaoConfig.clearIdentityScope();
        pointDeviceBeanDaoConfig.clearIdentityScope();
        polylineDeviceBeanDaoConfig.clearIdentityScope();
        towerLibraryDaoConfig.clearIdentityScope();
        transformerLibraryDaoConfig.clearIdentityScope();
        wireLibraryDaoConfig.clearIdentityScope();
        projectBeanDaoConfig.clearIdentityScope();
        projectCustomSchemeBeanDaoConfig.clearIdentityScope();
        projectHighVoltageSchemeBeanDaoConfig.clearIdentityScope();
        projectLowVoltageSchemeBeanDaoConfig.clearIdentityScope();
        myHighVoltageSchemeBeanDaoConfig.clearIdentityScope();
        myLowVoltageSchemeBeanDaoConfig.clearIdentityScope();
        splashBeanDaoConfig.clearIdentityScope();
        userInfoBeanDaoConfig.clearIdentityScope();
    }

    public CrossDeviceBeanDao getCrossDeviceBeanDao() {
        return crossDeviceBeanDao;
    }

    public HotLineWorkPlanBeanDao getHotLineWorkPlanBeanDao() {
        return hotLineWorkPlanBeanDao;
    }

    public PointDeviceBeanDao getPointDeviceBeanDao() {
        return pointDeviceBeanDao;
    }

    public PolylineDeviceBeanDao getPolylineDeviceBeanDao() {
        return polylineDeviceBeanDao;
    }

    public TowerLibraryDao getTowerLibraryDao() {
        return towerLibraryDao;
    }

    public TransformerLibraryDao getTransformerLibraryDao() {
        return transformerLibraryDao;
    }

    public WireLibraryDao getWireLibraryDao() {
        return wireLibraryDao;
    }

    public ProjectBeanDao getProjectBeanDao() {
        return projectBeanDao;
    }

    public projectCustomSchemeBeanDao getProjectCustomSchemeBeanDao() {
        return projectCustomSchemeBeanDao;
    }

    public projectHighVoltageSchemeBeanDao getProjectHighVoltageSchemeBeanDao() {
        return projectHighVoltageSchemeBeanDao;
    }

    public projectLowVoltageSchemeBeanDao getProjectLowVoltageSchemeBeanDao() {
        return projectLowVoltageSchemeBeanDao;
    }

    public MyHighVoltageSchemeBeanDao getMyHighVoltageSchemeBeanDao() {
        return myHighVoltageSchemeBeanDao;
    }

    public MyLowVoltageSchemeBeanDao getMyLowVoltageSchemeBeanDao() {
        return myLowVoltageSchemeBeanDao;
    }

    public SplashBeanDao getSplashBeanDao() {
        return splashBeanDao;
    }

    public UserInfoBeanDao getUserInfoBeanDao() {
        return userInfoBeanDao;
    }

}
